gui/tray: Do not generate JPEG images in async image response for macOS
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 28 Feb 2025 08:26:08 +0000 (16:26 +0800)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Mon, 3 Mar 2025 12:36:57 +0000 (12:36 +0000)
We are seeing libjpeg related crashes in our packaged version for macOS.
Until we are able to resolve this in the packaging, do not generate
JPEG-based images

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/tray/asyncimageresponse.cpp

index fb1bf81590421518066e63f40142e5212556846d..89b1f049e16d1c3cd8562e60d4e75317ffecc8f1 100644 (file)
  * for more details.
  */
 
+#include "asyncimageresponse.h"
+
 #include <QIcon>
 #include <QPainter>
 #include <QSvgRenderer>
 
-#include "asyncimageresponse.h"
-#include "usermodel.h"
+#include "accountmanager.h"
 
 AsyncImageResponse::AsyncImageResponse(const QString &id, const QSize &requestedSize)
 {
@@ -135,6 +136,12 @@ void AsyncImageResponse::slotProcessNetworkReply()
             } else {
                 processNextImage();
             }
+#ifdef Q_OS_MACOS
+        // NOTE: We are facing issues with JPEGs at the moment on macOS with our Qt 6.8.2-based release.
+        // Do not create previews for JPEGs to prevent crashing.
+        } else if (imageData.startsWith(QByteArrayLiteral("\xFF\xD8")) && imageData.endsWith(QByteArrayLiteral("\xFF\xD9"))) {
+            processNextImage();
+#endif
         } else {
             setImageAndEmitFinished(QImage::fromData(imageData));
         }